#include <iostream>//用于标准输入输出
#include <fstream>//用于文件输入输出
#include <stdio.h>//C语言标准输入输出库
#include <stdlib.h>//C语言标准库
using namespace std;//命名空间std

void Tuple(){//定义一个名为Tuple的函数

  ifstream input("./file3.txt");//打开名为file3.txt的文件，准备从中读取数据
  string tuple_tmp;
  vector <string> tuple;
  tuple.clear();//定义了一个临时的字符串变量tuple_tem和一个储存字符串的向量tuple，并清空了这个向量

  while (!input.eof()){
     input>>tuple_tmp;
     tuple.push_back(tuple_tmp);
   }//循环读取文件中的每个字符串，并将其添加到tuple向量中

   char num[1000]={0};
   char cmd[1000]={0};
   char cmd2[1000]={0};
   char cmd3[1000]={0};//定义了四个长度为1000的字符数组，用于储存命令和数字
   for(int i=0;i<tuple.size()-1;i++ ){
     string name = tuple[i];
     sprintf(cmd,"dirac-dms-get-file %s",name.c_str());
     cout<<cmd<<endl;

     sprintf(num,"%i",i);
     sprintf(cmd2,"mv Tuple.root BuToKstaKsta_%s.root",num);
     cout<<cmd2<<endl;

     //sprintf(num2,"%i",i);
     sprintf(cmd3,"cp BuToKstaKsta_%s.root  root_data",num);
     cout<<cmd3<<endl;//对于每个元组名称，生成一系列命令，并输出到标准输出。首先使用sprintf将命令格式化到cmd\cmd2和cmd3中，然后输出到屏幕上
  }
   cout<<"That's end"<<endl;
}//这段代码的作用是从文件中读取元组名称，然后使用这些名称生成一系列命令，并将这些命令输出到屏幕上。这些命令看起来是用于执行文件操作，包括获取文件、重命名文件以及复制文件。
